Работа с git
Кудряшов А. Н.
Российский университет дружбы народов, Москва, Россия
::::::::::::::
Приобрести практические навыки работы с системой управления версиями Git.
Создать репозиторий
Изменить его содержимое, изучить работу с коммитами, версиями и тегами
Поработать с объектами Git
Создать дополнительную ветку, провести слияние, разрешение конфликтов
Создать клон репозитория и слить его с оригинальным
Залить и извлечь изменения
Изменим содержимое файла hello.html на:
<h1>Hello, World!</h1>
Получим список произведённыз изменений в станлартном виде, затем в однострочном, а также с указанием времени и количества.
Используем команду git reset, чтобы сбросить буферную зону к HEAD. Это очищает буферную зону от изменений, которые мы только что проиндексировали.
Удалим последние два коммита с помощью сброса, сначала отметим последний коммит тегом, чтобы его можно было потом найти. Используем команду git reset, чтобы вернуться к версии до этих коммитов.
Удалим тег oops и коммиты, на которые он ссылался, сборщиком мусора. Теперь этот тег не отображается в репозитории.
Переместим наш файл в каталог lib. Для этого создадим его и используем команду git mv, сделаем коммит этого пермещения.
<html>
<body>
<iframe src="lib/hello.html" width="200" height="200" />
</body>
</html>
Посмотрим все логи. Переключимся обратно на основную ветку и просмотрим содержимое файла ib/hello.html, заметим, что он не использует стили, также просмотрим содержимое этого файла в новой ветке.
Вернемся в основную ветку и добавим файл README.md. Просмотрим ветки и их различия.
Слияние переносит изменения из двух веток в одну. Вернемся к ветке style и сольем master с style.
После коммита «Added README» ветка master была объединена с веткой style, но в настоящее время в master есть дополнительный коммит, который не был слит с style. Последнее изменение в master конфликтует с некоторыми изменениями в style.
Вернемся к ветке style и попытаемся объединить ее с новой веткой master. Внесем изменения в lib/hello.html, оставив только необходимую нам запись и добавим этот файл в репозиторий, чтобы вручную разрешить конфликт.
Вернемся на ветке style к точке перед тем, как мы слили ее с веткой master. Мы видим, что коммит «Updated index.html» был последним на ветке style перед слиянием. Сбросим ветку style к этому коммиту.
Коммит «Added README» идет непосредственно перед коммитом конфликтующего интерактивного режима. Мы сбросим ветку master к коммиту «Added README».
Вернемся в ветку master и сольем ветку style в неё с помощью команды git merge.
Перейдем в наш рабочий каталог и сделаем клон репозитория hello, затем создадим клон репозитория. Просмотрев его увидим список всех файлов на верхнем уровне оригинального репозитория README.md, index.html и lib.
Посмотрим на ветки, доступные в нашем клонированном репозитории. Можно увидеть, что в списке только ветка master.
Перейдём в клон репозитория и используем команду git fetch, которая будет извлекать новые коммиты из удаленного репозитория, но не будет сливать их с наработками в локальных ветках.
Сольем внесённые изменения в главную ветку. Также можно было бы использовать команду git pull, которая является объединением fetch и merge в одну команду.
Добавим локальную ветку, которая отслеживает удаленную ветку, теперь мы можем видеть ветку style в списке веток и логе.
В процессе выполнения данной лабораторной работы я приобрел практические навыки работы с Git.